package org.example.classtopia.Controller;

import org.example.classtopia.Service.Impl.SeleniumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 课表相关接口
 * 
 * <p>本控制器提供基于Selenium自动化的武汉大学课表登录与数据获取接口。</p>
 * <p>适用于需要自动化登录和课表数据爬取的场景。</p>
 * 
 * <p>主要接口：</p>
 * <ul>
 *   <li>POST /api/login - 自动登录武汉大学综合理解系统，返回登录结果</li>
 *   <li>GET /api/curriculum - 获取指定日期的课表数据（JSON字符串）</li>
 * </ul>
 * 
 * <p>接口示例：</p>
 * <pre>
 *   POST /api/login?username=学号&password=密码
 *   GET  /api/curriculum?date=2024-09-01
 * </pre>
 * 
 * <p>注意：本接口依赖Selenium自动化浏览器，需保证服务器环境已配置好EdgeDriver。</p>
 */
@RestController
@RequestMapping("/api")
public class CurriculumController {

    @Autowired
    private SeleniumService seleniumService;

    /**
     * 自动登录武汉大学综合理解系统
     * @param username 学号
     * @param password 密码
     * @return 登录成功返回"登录成功"，否则返回"登录失败"
     */
    @PostMapping("/login")
    public Map<String, String> loginAndGetCurriculum(@RequestParam String username, @RequestParam String password, @RequestParam String date) {
        return seleniumService.loginAndGetCurriculum(username, password, date);
    }

    /**
     * 获取指定日期的课表数据
     * @param date 日期字符串（如2024-09-01）
     * @return 课表JSON字符串
     */
    @GetMapping("/curriculum")
    public String getCurriculum(@RequestParam String date) {
        return seleniumService.getCurriculum(date);
    }
}
